package com.qiaoba.module.system.converter;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qiaoba.api.system.entity.dto.SysMenuDTO;
import com.qiaoba.module.system.entity.SysMenu;
import com.qiaoba.module.system.entity.param.SysMenuParam;

/**
 * 菜单 类型转换
 *
 * @author ailanyin
 * @date 2023-09-10 08:57:58
 */
public class SysMenuConverter {

    public static SysMenu dto2Entity(SysMenuDTO dto) {
        SysMenu sysMenu = new SysMenu();
        sysMenu.setMenuId(dto.getMenuId());
        sysMenu.setMenuName(dto.getMenuName());
        sysMenu.setParentId(dto.getParentId());
        sysMenu.setOrderNum(dto.getOrderNum());
        sysMenu.setPath(dto.getPath());
        sysMenu.setComponent(dto.getComponent());
        sysMenu.setQuery(dto.getQuery());
        sysMenu.setIsFrame(dto.getIsFrame());
        sysMenu.setIsCache(dto.getIsCache());
        sysMenu.setMenuType(dto.getMenuType());
        sysMenu.setIsVisible(dto.getIsVisible());
        sysMenu.setPerms(dto.getPerms());
        sysMenu.setIcon(dto.getIcon());

        return sysMenu;
    }

    public static QueryWrapper<SysMenu> param2Wrapper(SysMenuParam param) {
        QueryWrapper<SysMenu> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .orderByAsc(SysMenu::getOrderNum)
                .eq(StrUtil.isNotBlank(param.getIsVisible()), SysMenu::getIsVisible, param.getIsVisible())
                .like(StrUtil.isNotBlank(param.getMenuName()), SysMenu::getMenuName, param.getMenuName());
        return wrapper;
    }

}
